'''
假设你要去商场购物，打算购买多种商品，请编写两个类以维护你的购物清单，同时给
出相应的示例程序，包括输出购物清单等。GroceryList 类对应着购物清单，通过列表维护了
清单中的某一项。GroceryItemOrder 维护了购物项，包括购买哪个特定商品，购买多少个，
每个的单价为多少等信息。
'''
class GroceryItemOrder:
    def __init__(self, name, quantity, price_per_unit):
        self.name = name
        self.quantity = quantity
        self.price_per_unit = price_per_unit

    def cost(self):
        print(self.name+"共花费"+str(self.quantity*self.price_per_unit)+"元")

ttt = GroceryItemOrder("口香糖", 5, 20)
ttt.quantity = 10
print(ttt.quantity)
ttt.cost()

class GroceryList:
    def __init__(self):
        self.list = []

    def add(self, item: 'GroceryItemOrder'):
        self.list.append((item.name, item.quantity, item.price_per_unit))
        print("目前购物清单里有:"+str(self.list))

    def total_cost(self):
        total_cost = 0
        for item in self.list:
            total_cost += item[1]*item[2]
        print("目前共需花费"+str(total_cost)+"元")

a = GroceryList()
a.add(GroceryItemOrder("苹果", 2, 200))
a.add(GroceryItemOrder("香蕉", 1, 500))
a.total_cost()